#include<bits/stdc++.h>
using namespace std;
#define MAXN 100010
#define mdI int mid=(l+r)>>1
#define pbI push_back
#define ll long long
#define MOD 998244353
#define lowbit(x) x&(-x)
#define rep(a,b,c) for(int a=b;a<=c;a++)
void chmi(int &x,int y){x=min(x,y);}
void chmx(int &x,int y){x=max(x,y);}
int qread(){
    char o=0;int f=1,x=0;
    for(;!isdigit(o);o=getchar())if(o=='-')f=-1;
    for(;isdigit(o);o=getchar())x=x*10+(o-'0');
    return f*x;
}
ll qp(ll a,ll b,ll c=MOD){ll rs=1,bs=a;while(b){if(b&1)rs=rs*bs%c;bs=bs*bs%c;b>>=1;}return rs;}
bool FLA;
int n,a[MAXN];
multiset<int>ms;
bool FLB;
signed main(){
    cerr<<((&FLB)-(&FLA))/1024.0/1024.0<<endl;
    freopen("duel.in","r",stdin);
    freopen("duel.out","w",stdout);
    cin>>n;
    rep(i,1,n)a[i]=qread();
    sort(a+1,a+1+n);
    int ans=n;
    rep(i,1,n){
        if(ms.empty()){ms.insert(a[i]);continue;}
        int b=*ms.begin();
        if(a[i]>b){ms.erase(ms.find(b));ans--;}
        ms.insert(a[i]);
    }
    cout<<ans;
}
